package com.data.utill;

import java.io.Serializable;
import java.util.LinkedHashMap;

/**
 * Created by cxj on 2017/6/26.
 */
public class TableField implements Serializable{
    private static final long serialVersionUID = 1L;
    private String code;
    private String name;
    private LinkedHashMap<String, String> map = null;
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public TableField(String code, String name) {
        this.code = code;
        this.name = name;
    }
    public LinkedHashMap<String, String> getHashMap() {
        return this.map;
    }
    public String getName(String code) {
        if (code == null || code.trim().equals("")) return "";
        if (!this.map.containsKey(code.trim())) return code;
        return this.map.get(code);
    }

    enum e {
//      收款账户类型
        cdtrclass,
//      付款账户类型
        dbtrtype,
//      账户绑定信息协议状态
        state,
//       账户状态
        orgAccountState,
//       记账方式
        bookmode,
//       机构类型
        orgtype,
//       机构允许的业务类型
        busiallow,
//        协议类型
        consigntype,
//        是否检查协议
        checkflag,
//        密押类型
        mactype,
//        机构接入类型
        nodetype,
//        机构服务类型
        svctype,
//        TCP通讯模式
        commtype,
//        机构状态
        orgstat,
//        下载模式
        downmode,
//        明细状态
        prcstate,
//        清算状态
        clrstate,
//        退回标识，表示该流水被退回
        rejectflag,
//         银行级别
        banklevel,
//        银行状态
        bankstat,
//        借贷记标志
        dcflag,
//        业务类型
        trncode






    }
    public TableField(String table) {
        map = new LinkedHashMap<String, String>();
        switch (e.valueOf(table)) {
            case cdtrclass:
                map.put("1", "一类账户");
                map.put("2", "二类账户");
                map.put("3", "三类账户");
                break;
            case state:
                map.put("0", "撤销");
                map.put("1", "正常");
                break;
            case dbtrtype:
                map.put("1", "对公客户");
                map.put("2", "个人用户");
                break;
            case orgAccountState:
                map.put("1", "正常");
                map.put("8", "停用");
                map.put("9", "删除");
                break;
            case bookmode:
                map.put("1", "单笔记账");
                map.put("2", "汇总记账");
                break;
            case orgtype:
                map.put("1", "银行");
                map.put("2", "企事业单位");
                break;
            case busiallow:
                map.put("1", "批量借");
                map.put("2", "批量贷");
                map.put("3", "实借");
                map.put("4", "实贷");
                map.put("5", "在线支付");
                map.put("6", "缴费");
                break;
            case consigntype:
                map.put("0", "协议不作要求");
                map.put("1", "协议机构生成");
                map.put("2", "协议中心生成");
                break;
            case checkflag:
                map.put("0", "不检查，由银行检查");
                map.put("1", "中心检查");
                map.put("2", "中心不检查但也作为已检查处理");
                break;
            case mactype:
                map.put("1", "中心传统类型");
                map.put("2", "RSA证书方式");
                map.put("3", "国密证书");
                break;
            case nodetype:
                map.put("1", "直连");
                map.put("2", "转接");
                map.put("3", "间连");
                break;
            case svctype:
                map.put("1", "TCP");
                map.put("2", "TUXEDO");
                break;
            case commtype:
                map.put("1", "同步");
                map.put("2", "异步");
                break;
            case orgstat:
                map.put("0", "签退");
                map.put("1", "签到");
                map.put("8", "停用");
                map.put("9", "删除");
                break;
            case downmode:
                map.put("0", "代收，代付约时下载");
                map.put("1", "代收随时可下载");
                map.put("2", "代付随时可下载");
                map.put("3", "代收代付随时可下载");
                break;
            case prcstate:
                map.put("PR00", "已转发");
                map.put("PR01", "待认证");
                map.put("PR02", "已付款");
                map.put("PR03", "已轧差");
                map.put("PR04", "已清算");
                map.put("PR05", "已成功");
                map.put("PR06", "待处理");
                map.put("PR07", "已处理");
                map.put("PR08", "已撤销");
                map.put("PR09", "已拒绝");
                map.put("PR10", "已确认");
                map.put("PR32", "逾期退回");
                break;
            case clrstate:
                map.put("0", "已受理");
                map.put("1", "已纳入轧差");
                map.put("6", "无需轧差");
                map.put("7", "已转发");
                map.put("9", "已失败");
                map.put("C", "已轧差");
                break;
            case rejectflag:
                map.put("0", "正常");
                map.put("1", "有退回");
                break;
            case banklevel:
                map.put("1", "清算行");
                map.put("2", "管辖行");
                map.put("3", "开户行");
                break;
            case bankstat:
                map.put("0", "停用");
                map.put("1", "启用");
                map.put("9", "注销");
                break;
            case dcflag:
                map.put("C", "贷记");
                map.put("D", "借记");
                break;
            case trncode:
                map.put("7001", "实时代收");
                map.put("7003", "实时代付");
                map.put("7007", "在线支付");
                map.put("7009", "同名账户资金归筹");
                map.put("7013", "实时缴费");
                map.put("7101", "批量代收");
                map.put("7102", "批量代付");
                break;
        }
    }



}
